package com.kingbar.app.chat.kingwesocket.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;

import static org.springframework.security.config.Customizer.withDefaults;

@Configuration
public class SecurityConfig {

//    @Bean
//    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
//        http
//                // 关闭 CSRF
//                .csrf(csrf -> csrf.disable())
//                // 允许所有请求
//                .authorizeHttpRequests(auth -> auth.anyRequest().permitAll())
//                // 使用默认配置（比如表单登录）
//                .httpBasic(withDefaults());
//
//        return http.build();
//    }

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
                // 启用 HTTP 基本认证（开发阶段使用）
                .httpBasic(withDefaults())
                // 暂时允许所有请求（后续你可以替换成基于角色控制）
                .authorizeHttpRequests(auth -> auth
                        .antMatchers("/ws/**").permitAll()  // 允许 WebSocket 连接路径
                        .anyRequest().authenticated()           // 其余请求需要认证
                )
                // WebSocket 不需要 CSRF 校验
                .csrf(csrf -> csrf.disable());

        return http.build();
    }
}
